import { Exclude } from 'class-transformer'
import { CreateUserDTO } from './create-user.dto'
import { PartialType, PickType } from '@nestjs/mapped-types'
import { ArrayNotEmpty, IsNotEmpty } from 'class-validator'

export class UpdateUserDTO extends PartialType(CreateUserDTO) {
  @IsNotEmpty({ message: '参数 $property 不可为空' })
  id: string

  @ArrayNotEmpty({ message: '参数 $property 不可为空' })
  @IsNotEmpty({ message: '参数 $property 不可为空' })
  roleIds: string[]

  @Exclude()
  username: string

  @Exclude()
  password: string

  @Exclude()
  createBy: string
}

export class UpdateProfileDTO extends PickType(CreateUserDTO, ['age', 'updateBy', 'gender', 'nickname', 'phone', 'qq']) {}

export class UpdateUserPwdDTO {
  @IsNotEmpty({ message: '参数 $property 不可为空' })
  userId: string

  @IsNotEmpty({ message: '参数 $property 不可为空' })
  oldPassword: string

  @IsNotEmpty({ message: '参数 $property 不可为空' })
  newPassword: string

  @IsNotEmpty({ message: '参数 $property 不可为空' })
  repeatPassword: string
}
